#!/bin/sh
IPADDR=$1
COMMUNITY=$2
pollIntInfo ()
{
INTLIST="`snmpwalk -Onq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.4.1.9.5.1.4.1.1.11`"
INTNUM=`echo $INTLIST|wc -w`
if [ "$INTNUM" -gt "10" ]; then
  echo "Testing Cisco CatOs tree."
  for VAR in $INTLIST
  do
#   echo "VAR=$VAR"
    if [ "${#VAR}" -gt "10" ]; then
      TMPRES=$VAR
    else
      MODPORT[$VAR]=${TMPRES:28}
      L2INTLIST="$L2INTLIST $VAR"
#     echo "MODPORT $VAR=${TMPRES:28}"
      INTNAME[$VAR]=`snmpget -Onvq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.2.1.31.1.1.1.1.$VAR`
      DESCR[$VAR]="`snmpget -v1 -Onvq $IPADDR -c $COMMUNITY .1.3.6.1.2.1.31.1.1.1.18.$VAR 2> /dev/null | sed 's/\"//g'`"
      if [ "${DESCR[$VAR]}" = "" ]; then
        DESCR[$VAR]="`snmpget -Onvq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.4.1.9.5.1.4.1.1.4.${MODPORT[$VAR]}`"
      fi
      
    fi
  done
else
  INTLIST="`snmpwalk -Onvq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.2.1.2.2.1.1`"
  L2INTLIST=$INTLIST
  for VAR in $INTLIST
  do
    INTNAME[$VAR]=`snmpget -Onvq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.2.1.31.1.1.1.1.$VAR 2> /dev/null`
    if [ "$INTNAME" = "" ]; then
      INTNAME[$VAR]=`snmpget -Onvq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.2.1.2.2.1.2.$VAR 2> /dev/null`
    fi 
    DESCR[$VAR]=`snmpget -v1 -Onvq "$IPADDR" -c $COMMUNITY .1.3.6.1.2.1.31.1.1.1.18.$VAR 2> /dev/null`
  done
fi
}

pollIntInfo $IPADDR $COMMUNITY
for INTNO in $L2INTLIST
do
  printf "MODPORT=${MODPORT[$INTNO]}"
  INTOPER[$INTNO]=`snmpget -Onvq -v1 $IPADDR -c $COMMUNITY .1.3.6.1.2.1.2.2.1.8.$INTNO`
  echo "INFO int $INTNO INTNAME=${INTNAME[$INTNO]} DESCR=${DESCR[$INTNO]} INTOPER=${INTOPER[$INTNO]}"
done
